/*
 * @Author: Collin colin.w.cai@hotmail.com
 * @Date: 2021-05-24 01:14:03
 * @LastEditors: Collin colin.w.cai@hotmail.com
 * @LastEditTime: 2022-10-25 23:38:09
 * @Description: 演示如何初始化变量
 */

package variables

import "fmt"

/****************************************************************
变量初始化
******************************************************************/

/*
第一种声明变量并初始化的演示。
*/
func InitVar() {
	var age int = 10
	fmt.Println(age)
}

/*
第二种声明变量并初始化的演示，编译器可以自动推导出v3的类型。
不需要为变量指定类型，而是根据=后的初始化值来判断变量应该是什么类型。
*/
func InitVarSeparated() {
	var age = 10
	fmt.Println(age)
}

/*
第三种声明变量并初始化的演示。编译器可以自动推导出v3的类型
*/
func InitVarWithColonAndEqualSign() {
	age := 10
	fmt.Println(age)
}

/*
无效的声明方式， := 的方式不能为已经声明过的变量进行初始化或赋值
*/
func InvalidInitVar() {
	var age int
	// 如果继续编写一下代码将会得到 “no new variables on left side of :=”的错误。
	// age := 10

	fmt.Println(age)
}
